﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Avaliador
/// </summary>
public partial class Avaliador
{
    public static List<Avaliador> findAvaliadorByEvento(Guid idEvento)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Where(p => p.idEvento.Equals(idEvento)).ToList();
    }
    public static Avaliador findAvaliadorByEventoPessoa(Guid idEvento, Guid idPessoa)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Single(p => p.idEvento.Equals(idEvento) && p.idPessoa.Equals(idPessoa));
    }
    public static bool existAvaliadorByEventoPessoa(Guid idEvento, Guid idPessoa)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Any(p => p.idEvento.Equals(idEvento) && p.idPessoa.Equals(idPessoa));
    }
    public static bool existAvaliador(Guid id)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Any(p => p.id.Equals(id));
    }
    public static bool existAvaliador(Guid idEvento, Guid idPessoa)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        if (dc.Avaliadors.Any(p => p.idEvento.Equals(idEvento) && p.idPessoa.Equals(idPessoa)))
            return true;
        else
            return false;
    }
    public static bool acceptAvaliador(Guid id)
    {
        try
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            Avaliador avaliador = dc.Avaliadors.Single(p => p.id.Equals(id));
            avaliador.aceito = true;
            dc.SubmitChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
    public static bool accept(Guid id)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        Avaliador avaliador = dc.Avaliadors.Single(p => p.id.Equals(id));
        if (avaliador.aceito == true)
            return true;
        else
            return false;
    }
    public static List<Avaliador> findAvaliadorByIdPessoa(Guid idPessoa)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Where(p => p.idPessoa.Equals(idPessoa)).ToList();
    }
    public static Avaliador findAvaliadorById(Guid idAvaliador)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Single(p => p.id.Equals(idAvaliador));
    }
    public static Avaliador findAvaliadorByIdUsuario(Guid idUsuario)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.Avaliadors.Single(p => p.idPessoa.Equals(Usuario.findPessoaById(idUsuario).id));
    }
    public static Avaliador changeStatus(Avaliador avaliador)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        Avaliador avaliadorAntigo = dc.Avaliadors.Single(p => p.id.Equals(avaliador.id));
        if (avaliadorAntigo.status == true)
            avaliadorAntigo.status = false;
        else
            avaliadorAntigo.status = true;
        dc.SubmitChanges();
        try
        {
            return avaliadorAntigo;
        }
        catch (Exception ex)
        {
            return new Avaliador();
        }
    }
    public static bool createAvaliador(Avaliador avaliador)
    {
        try
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            dc.Avaliadors.InsertOnSubmit(avaliador);
            dc.SubmitChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}